package com.xdcplus.web.service.wip;

import com.xdcplus.mp.service.BaseService;
import com.xdcplus.pager.vo.PageVO;
import com.xdcplus.web.common.pojo.entity.WipMarkingIvCount;
import com.xdcplus.web.common.pojo.dto.WipMarkingIvCountDTO;
import com.xdcplus.web.common.pojo.dto.WipMarkingIvCountFilterDTO;
import com.xdcplus.web.common.pojo.vo.WipMarkingElSummaryVO;
import com.xdcplus.web.common.pojo.vo.WipMarkingIvCountVO;

import java.util.List;


/**
 * (WipMarkingIvCount)表服务接口层
 *
 * @author bullion.yan
 * @since 2024-11-28 18:34:27
 */
public interface WipMarkingIvCountService extends BaseService<WipMarkingIvCount, WipMarkingIvCount, WipMarkingIvCountVO> {

    /**
     * 添加(WipMarkingIvCount)
     *
     * @param wipMarkingIvCountDTO (WipMarkingIvCountDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveWipMarkingIvCount(WipMarkingIvCountDTO wipMarkingIvCountDTO);

    /**
     * 修改(WipMarkingIvCount)
     *
     * @param wipMarkingIvCountDTO (WipMarkingIvCountDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean updateWipMarkingIvCount(WipMarkingIvCountDTO wipMarkingIvCountDTO);

    /**
     * 批量保存或更新(WipMarkingIvCount)
     *
     * @param wipMarkingIvCountList (WipMarkingIvCountList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatch(List<WipMarkingIvCount> wipMarkingIvCountList);

    /**
     * 批量保存或更新(WipMarkingIvCountDTOList)
     *
     * @param wipMarkingIvCountDTOList (WipMarkingIvCountDTOList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatchByDTOList(List<WipMarkingIvCountDTO> wipMarkingIvCountDTOList);

    /**
     * 删除(WipMarkingIvCount)
     *
     * @param id (WipMarkingIvCount)主键
     * @return {@link Boolean} 是否成功
     */
    Boolean deleteWipMarkingIvCountLogical(Long id);
    
    Boolean deleteWipMarkingIvCountByIds(String ids);

    /**
     * 查询(WipMarkingIvCount)
     *
     * @param wipMarkingIvCountFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<WipMarkingIvCountVO>} 状态信息
     */
    List<WipMarkingIvCountVO> queryWipMarkingIvCountVOList(WipMarkingIvCountFilterDTO wipMarkingIvCountFilterDTO);

    /**
     * 查询(WipMarkingIvCount)
     *
     * @param wipMarkingIvCountFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<WipMarkingIvCountVO>} 状态信息
     */
    PageVO<WipMarkingIvCountVO> queryWipMarkingIvCount(WipMarkingIvCountFilterDTO wipMarkingIvCountFilterDTO);

    /**
     * 查询一个
     *
     * @param id (WipMarkingIvCount)主键
     * @return {@link WipMarkingIvCountVO} (WipMarkingIvCount)信息
     */
    WipMarkingIvCountVO queryWipMarkingIvCountById(Long id);

    /**
     * 根据标签ID查询
     * @param markingId
     * @return
     */
    List<WipMarkingIvCountVO> queryByMarkingId(Long markingId);
}
